Что такое Node.js?
Node или Node.js — серверная реализация языка программирования JavaScript, основанная на движке V8. Предназначена для создания масштабируемых распределённых сетевых приложений, таких как веб-сервер. Node.js по целям использования сходен с каркасами Twisted на языке Python и EventMachine на Ruby. В отличие от большинства программ JavaScript, этот каркас исполняется не в браузере клиента, а на стороне сервера.
Что такое framework?
framework — это набор инструментов, библиотек, хорошего кода, который поможет превратить рутинные задачи в модули, которые можно использовать неоднократно. Задача framework’а — позволить дизайнеру или разработчику сфокусироваться на задачах, являющимися уникальными в рамках данного проекта. Иначе говоря, не изобретать колесо раз за разом.
Теперь непосредственно сами framework’и
Рассмотрим такие вспомогательные средства для серверной разработки на JS, как:
- Express
- Meteor
- Mean
- Koa
- Hapi
- Sails
- Socket
Express
Express — это минималистичный и гибкий веб-фреймворк для приложений Node.js, предоставляющий обширный набор функций для мобильных и веб-приложений.
Express, как хорошо известно, развивается своим путём, в отличие от других фреймворков, во многом опирающихся на Rails, но также много позаимствовал из другого Ruby-фреймворка под названием Sinatra. Концепция простая: фреймворк предоставляет достаточно возможностей для запуска и работы «на лету», не требуя много времени на подготовку.
Это фреймворк, делающий создание большинства сайтов очень простым. Первое, что вам нужно будет сделать — установить его.$ npm install express --save
Вместе с командой node у вас появится команда npm
. Этот инструмент даёт вам доступ к колоссальному количеству модулей, созданных сообществом, и Express как раз один из них.
Плюсы данного framework’а:
1)Низкий порог вхождения, Express — это практически стандарт Node.js-приложения.
2)Полная кастомизация.
Минусы:
1)Все ресурсы необходимо создавать вручную и, в результате, появится много повторного кода или хуже — собственная библиотека.
2)Каждый ресурс требует тестирования или простой проверки на 500-ую ошибку.
3)Рефакторинг станет болезненным, так как будет необходимо править всё и везде.
4)Нету стандартного подхода, нужно искать свой.
->Пример разработки на Express
->Официальный сайт
Meteor
Meteor является MVC (Model-View-Controller) фреймворком с открытым исходным кодом, с помощью которого вы можете создавать Web-приложения реального времени. Одна из важнейших особенностей платформы состоит в том, что она позволяет использовать один и тот же код как на стороне сервера, так и на стороне клиента. Между сервером и клиентом, как правило, передаются данные, а не HTML-код. Фреймворк поддерживает OS X, Windows и Linux. Его реактивная модель программирования позволяет создавать приложения используя меньше JavaScript кода.
Плюсы данного framework’а:
1)Код сервера и клиента пишется на одном языке
2)Удобно отлаживать код прямо из браузера
3)Можно быстро продемонстрировать состояние проекта клиенту при помощи meteor deploy
Минусы:
1)Не годится для крупных проектов
2)Совершенно не годится для мобильных устройств из-за большого количества JavaScript
3)В коде некоторые тривиальные задачи приходится решать при помощи громоздких конструкций
->Пример разработки на Meteor
->Официальный сайт
Mean
MEAN (аббревиатура от MongoDB, Express.js, Angular.js, Node.js) — набор (комплекс) серверного программного обеспечения, который используется для веб-разработки. На уровне клиента, сервера и базы данных весь стек MEAN написан на JavaScript. Смещение базовой платформы с ОС (Linux) к среде исполнения JavaScript (Node.js) несет с собой независимость от ОС: Node.js работает на Windows и OS X так же, как и на Linux.
Главный сдвиг MEAN заключается в переходе от традиционного генерирования страниц на стороне сервера к ориентации на одностраничные приложения (SPA) на стороне клиента.
->пример разработки на Mean
->Официальный сайт
Koa
Команда разработчиков фреймворка Express.js создала еще один фреймворк под названием Koa.js — футуристический фреймворк следующего поколения для Node.js, который обещает быть более кратким и ярким, в сравнении с Express.js. Koa.js сфокусирован на создании веб приложений и API, его главное преимущество это генераторы, которые являются отличным способ избежать колбеков, а также помощь разработчикам в исправлении ошибок.
->Разработка приложения на koajs
->Официальный сайт
Hapi
Менее известный фреймворк, который разрабатывается командой Walmart Labs. В отличие от Express у него несколько другой подход, предоставляющий больший функционал сразу из коробки. К плюсам можно отнести полный контроль над приемом запросов и детальная справка с генерацией документации.
Плюсы данного framework’а:
1)Полный контроль над приёмом запросов.
2)Детальная справка с генерацией документации.
Минусы:
1)hapi, также как Express, даёт отличные возможности, но как их использовать, вы должны понять сами.
->Официальный сайт
Sails
Sails.js — это MVC (Model-View-Controller) фреймворк, который позволяет легко и быстро создавать Node.js приложения. Sails.js лучше всего подходит для создания реалтаймовых приложений. Он разработан на основе шаблона MVC, как Ruby On Rails, но также поддерживает требования современных приложений: программные интерфейсы с масштабируемой, сервисно-ориентированной архитектурой. Этот фреймворк особенно хорошо подходит для разработки чатов, инструментальных панелей реального времени и многопользовательских игр.
->Официальный сайт
Socket
Socket. IO — JavaScript библиотека для веб-приложений и обмена данными в реальном времени. Состоит из двух частей: клиентской, которая запускается в браузере и серверной для node.js. Оба компонента имеют похожее API.
Плюсы:
1)Мощный и простой в использовании
2)Используется многими крупными компаниями
->Официальный сайт
->Использование библиотеки Socket
->Еще один пример
Заключение
Собственно, на этом мы расмотрели несколько framework’ов для серверной разработки на JS. Для более детального погружения необходимо воспользоваться ссылками на официальные сайты.